import request from "@/utils/request";
import type {SpuImageListData,SpuSaleAttrListData} from './spu'
// 九个类型

// sku图片
interface SkuImageData {
  id?: number;
  skuId?: number;
  imgName: string;
  imgUrl: string;
  spuImgId?: number;
  isDefault: string;
}
// sku图片列表
type SkuImageListData = SkuImageData[];
// sku平台属性值
interface SkuAttrValueData {
  id?: number;
  attrId?: number;
  valueId?: number;
  skuId?: number;
  attrName: string;
  valueName: string;
}
// sku平台属性值列表
type SkuAttrValueListData = SkuAttrValueData[];
// sku销售属性值
interface SkuSaleAttrValueData {
  id?: number;
  skuId?: number;
  spuId?: number;
  saleAttrValueId?: number;
  saleAttrId?: number;
  saleAttrName: string;
  saleAttrValueName: string;
}
// sku销售属性值列表
type SkuSaleAttrValueListData = SkuSaleAttrValueData[];
// sku
type SkuData = {
  id?: number;
  spuId?: number;
  price: number;
  skuName: string;
  skuDesc: string;
  weight: string;
  tmId?: number;
  category3Id: number | string;
  skuDefaultImg: string;
  isSale: number;
  createTime: string;
  skuImageList: SkuImageListData;
  skuAttrValueList: SkuAttrValueListData;
  skuSaleAttrValueList: SkuSaleAttrValueListData;
};
// sku列表
type SkuListData = SkuData[];

// sku分页列表数据
type SkuPageListData = {
  records: SkuListData;
  total: number;
  size: number;
  current: number;
  searchCount: boolean;
  pages: number;
};

export default { //九个接口函数
  // GET /admin/product/cancelSale/{skuId}
  // cancelSale 下架
  cancelSale(skuId: number) {
    return request.get<any, null>(`/admin/product/cancelSale/${skuId}`);
  },
  // GET /admin/product/onSale/{skuId}
  // onSale 上架
  onSale(skuId: number) {
    return request.get<any, null>(`/admin/product/onSale/${skuId}`);
  },

  // DELETE /admin/product/deleteSku/{skuId}
  // deleteSku  删除sku
  deleteSku(skuId: number) {
    return request.delete<any, null>(`/admin/product/deleteSku/${skuId}`);
  },

  // GET /admin/product/findBySpuId/{spuId}
  // findBySpuId 根据某个spu的id去查询下面所有的sku列表
  findBySpuId(spuId: number) {
    return request.get<any, SkuListData>(`/admin/product/findBySpuId/${spuId}`);
  },

  // GET /admin/product/getSkuById/{skuId}
  // getById 通过某个sku的id来去查询sku的详情数据
  getById(skuId: number) {
    return request.get<any, SkuData>(`/admin/product/getSkuById/${skuId}`);
  },

  // GET /admin/product/list/{page}/{limit}
  // index 获取sku分页列表数据
  getSkuPageList(page: number, limit: number) {
    return request.get<any, SkuPageListData>(
      `/admin/product/list/${page}/${limit}`
    );
  },

  // POST /admin/product/saveSkuInfo
  // saveSkuInfo 添加sku
  saveSkuInfo(sku: SkuData) {
    return request.post(`/admin/product/saveSkuInfo`, sku);
  },

  // GET /admin/product/spuImageList/{spuId}
  // getSpuImageList 获取spu当中的图片列表
  getSpuImageList(spuId: number) {
    return request.get<any,SpuImageListData>(`/admin/product/spuImageList/${spuId}`);
  },

  // GET /admin/product/spuSaleAttrList/{spuId}
  // getSpuSaleAttrList 获取spu的销售属性列表
  getSpuSaleAttrList(spuId:number){
    return request.get<any,SpuSaleAttrListData>(`/admin/product/spuSaleAttrList/${spuId}`)
  },

  // POST /admin/product/updateSkuInfo
  // updateSkuInfo 修改sku的 功能未开发完成
};
